﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LoghogInterface.Modules
{
    /// <summary>
    /// Класс для работы с таблицей пользователей
    /// </summary>
    class UserSQLHelper
    {
        /// <summary>
        /// Схема базы данных
        /// </summary>
        private DBSchemeDataContextDataContext _database;

        public UserSQLHelper()
        {
            _database = new DBSchemeDataContextDataContext(SQLQueries.ConnectionString());
            _database.Connection.Open();
        }

        /// <summary>
        /// Проверка на существование логина в базе данных
        /// </summary>
        /// <param name="login">логин</param>
        /// <returns>Возвращает true, если логин существует, иначе возвращает false</returns>
        public bool UsernameExist(string login)
        {
            return _database.Users.Select(x => x.Name).Contains(login);
        }

        /// <summary>
        /// Проверка пароля в базе данных
        /// </summary>
        /// <param name="password">пароль</param>
        /// <returns>Возвращает true, если пароль существует, иначе возвращает false</returns>
        public bool PasswordExist(string password)
        {
            return _database.Users.Select(x => x.Password).Contains(password);
        }

        /// <summary>
        /// Получить Id пользователя
        /// </summary>
        /// <param name="login">логин</param>
        /// <param name="password">пароль</param>
        /// <returns>Возвращает ID пользователя</returns>
        public int GetID(string login, string password)
        {
            return (from user in _database.Users where user.Name == login && user.Password == password select user.ID).First();
        }
    }
}
